Software programs and systems are traditionally siloed. In other words, each application program maintains a memory space and its own relevant data store, thus maintaining a “local copy” of any data it utilizes. This paradigm for computer applications has been historically dictated by the disconnected nature of the computer system. The “local copy” has also been helpful in preserving the privacy of the data. However, having this private data has also prevented the sharing of data that could improve the functionality of individual program implementations.
The world wide web and other distributed file sharing systems or applications for content such as music, documents, etc. present one aspect of data sharing, albeit necessary for those applications to function normally. A system or method that would allow clones or other independently executing copies of a particular program to share data and or information that would be advantageous and that would otherwise be duplicative across similar implementations of the program has many advantages.
Traditionally, in networked or hosting environments, multiple sites running an application program collect and utilize a vast amount of data, which is kept segregated to each application program copy, implementation, or site. These individual applications could potentially benefit from leveraging the functionality that is provided by one application or one implementation, to aid another implementation of the application. Heretofore, different methods of aggregating information and centralizing information for use by multiple systems have been implemented. However, these methods and systems do not contemplate or enable two identical pieces of software that are intended to run separately as standalone programs, to share key pieces of data such that the software programs would run better.
Prior art systems shared information between disparate, distinct applications that had no common shared infrastructure and thus presented communication difficulty.